package blackitheima1.ClassDemo;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Properties;

public class PropClassDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException {
        //创建Properties(类似Map集合)对象
        Properties prop=new Properties();

        //获取系统类加载器
        ClassLoader classLoader = PropClassDemo.class.getClassLoader();
        //系统加载器调用方法 获取src类下prop.properties的数据,返回字节流
        InputStream stream = classLoader.getResourceAsStream("prop.properties");

        //将字节流导入prop对象中
        prop.load(stream);
        //调用方法获取字节流内容 通过键获取值
        String classname = prop.getProperty("Classname");
        String methodClass = prop.getProperty("methodClass");

        //创建Class对象
        Class aClass = Class.forName(classname);

        //获取成员方法
        Method method = aClass.getDeclaredMethod(methodClass);
        //创建对象
        Object o = aClass.newInstance();
        //调用成员方法
        method.invoke(o);

        //释放资源
        stream.close();

    }
}
